"""
自定义加密模块，使用itsdangerous来加密解密数据
"""

from itsdangerous import TimedJSONWebSignatureSerializer
from django.conf import settings

class SecretOauth(object):

    def __init__(self):
        # 实例属性
        self.serializer = TimedJSONWebSignatureSerializer(
            settings.SECRET_KEY,
            expires_in=3600   # 单位秒
        )
    # 加密,参数是一个字典
    def dumps(self, content_dict):
        # 进行加密
        result = self.serializer.dumps(content_dict)
        # 把加密后的数据返回
        return result.decode()

    # 解密，参数是一个字节数据
    def loads(self, assess_token):
        # access_token秘文
        try:
            content_dict = self.serializer.loads(assess_token)
        except Exception as e:
            #解密错误，返回None
            return None
        # 把解密后的数据返回
        return content_dict